package kioschool.basic.model
{
	import flash.display.MovieClip;
	import flash.geom.Point;
	import flash.text.TextField;
	
	import kioschool.basic.view.View;
	import kioschool.util.IdGenerator;
	
	/**
	 * Ребро графа, содержит уникальный идентификатор, смежные вершины и объект представления
	 * Родитель для всех ребер графовых моделей
	 * 
	 * @author Akimushkin Vasiliy
	 */
	public class Edge
	{
		/**
		 * Идентификатор
		 */
		private var _id:Number;
		
		/**
		 * Источник - первая инцидентная вершина
		 */
		private var _source:Vertex;
		
		/**
		 * Приемник- вторая инцидентная вершины
		 */
		private var _target:Vertex;
		
		/**
		 * Представление
		 */
		private var _view:View;
		
		/**
		 * Конструктор
		 */ 
		public function Edge(){
			_id=IdGenerator.getNewId();
		}

		/**
		 * Получает идентификатор 
		 */
		public function get id():Number{
			return _id;
		}
		
		/**
		 * Получает источник - первая инцидентная вершина
		 */
		public function get source():Vertex	{
			return _source;
		}
		
		/**
		 * Устанавливает источник - первая инцидентная вершина
		 */
		public function set source(value:Vertex):void{
			_source = value;
		}
		
		/**
		 * Получает приемник - вторая инцидентная вершина
		 */
		public function get target():Vertex	{
			return _target;
		}
		
		/**
		 * Устанавливает приемник - вторая инцидентная вершина
		 */
		public function set target(value:Vertex):void{
			_target = value;
		}
		
		/**
		 * Получает представление
		 */ 
		public function get view():View{
			return _view;
		}
		
		/**
		 * Устанавливает представления
		 */
		public function set view(value:View):void{
			_view = value;
		}

	}

}